#! /usr/bin/python
# -*- coding: utf8 -*-
#Programa: Programa per administrar llistes
#Autor: Sergi Garcia Robles
#Data: 21/10/2010

# He trobat molts problemes per a poder convinar el us de llistes i diccionaris, no he aconseguit adaptar el menú del exercici antic, també hi han algunes funcions
# que tot i funcionar a la consola de python, quant són incluides al programa no funcionen, i no entenc per què. Per part meva, em trobo molt insatisfet d'aquest examen
# ja que com a valoració personal ha sigut nefast.
agenda={}
agenda['per defecte']=0
op2='yy'
actual='per defecte'

cont=0

while op2 != 'y':
        print "Llista actual: ",actual

        print "Gestio de llistes: "
        print "lc: canvia la llista actual "
        print "le: elimina una llista "
        print "ll: llista el nom de totes les llistes "
        print "lm: mou el contingut d'una llista a l'actual" 
        print "ln: crea una nova llista " 
        print "lr: reanomena la llista actual "
        print "lt: crerca un element a les llistes "
        print ""
        print ""
        print "a. Afegeix a la llista "
        print "b. Buida la llista "
        print "e. Elimina de la llista "
        print "h. Hi és a la llista? "
        print "m. Mostra la llista "
        print "q. Quants? "
        print ""

        print "x. Surt del programa "
        op2=raw_input()
        if op2=='lc':
            nom=raw_input("Introdueix el nom de la llista ",)
            if agenda.has_key(nom)==False:
                    print("La clau introduida no existeix ")
            else:
                actual=nom
        
        if op2=='le':
            nom=raw_input("Introdueix el nom de la llista ",)
            if agenda.has_key(nom)==True:
                if actual != nom:
                    conf=raw_input("Estas segur?S/N ",)
                    if conf =='S':
                            del agenda[nom]
                else:
                    print "No es pot eliminar la llista actual "
            else:
                print "No existeix la llista indicada " 

        if op2=='ll': 
            clau = agenda.keys()
            cont=0
            while cont < len(clau):
                print clau[cont]
                print "("
                i=0
                i=agenda[clau[cont]]
                print len(i)
                print ")"
                cont = cont+1
        
        if op2=='lm':
            nom=raw_input("Introdueix el nom de la llista ",)
            if agenda.has_key(nom)==True:
                if actual != nom:
                    conf=raw_input("Estas segur?S/N ",)

        if op2=='ln':
            nom =raw_input("Introdueix el nom de la nova llista ",)
            if agenda.has_key(nom)==True:          
                print "El nom de la llista ja existeix "
            else: 
                agenda[nom]=0

        if op2=='lr':
                nom=raw_input("Introdueix el nom ",)
                if agenda.has_key(nom)==False:
                        agenda[nom]=agenda[actual]
                        actual=nom
                        del agenda[actual]
                        
                else:
                        
                        print "El nom de la llista ja existeix"

        if op2=='lt':
                i=raw_input("Introdueix la paraula a trobar ",)
                trobat=False
                
                for e in agenda.items():
                        nom=e[1][0]                        
                        print e
                        trobat=True
                        continue
               
                if not trobat:
                        print "No ha cap relació"    

        
        if op2 =='a':
                i=raw_input("Introdueix una cadena de caracters: ",)
                
                
                res=i in agenda[actual]
                if res != True:
                    agenda[actual].append(i)
                    
                else:
                    print ("El valor ja es troba a la llista. ")
        

        if op2 =='b':
                i=raw_input("Estas segur que vols esborrar?S/N ",)
                if i=='S':
                        #del llista1
                        
                        del agenda[actual]
                                
                        
                else:
                        print ("Llavors no esborrem re.")
        
        if op2=='e':
                i=raw_input("Introdueix la cadena a esborrar: ",)
                res=i in agenda[actual]
                if res == True:
                        cont=0
                        while agenda[actual] != i:
                                cont=cont+1

                        del agenda[actual]
                else:
                        print ("La cadena introduida no es troba a la llista")
        
        if op2=='h':
                i=raw_input("Introdueix una cadena de caracters: ",)

                res=i in agenda[actual]
                if res ==True:
                        
                        print("La cadena introduida SI es troba a la llista")
                        
                else:
                        print("La cadena introduida NO es troba a la llista")
        if op2=='m':
                
                
                llista2=[]
                llista2=llista2+agenda[actual]
                if len(llista2)==0:
                        print("La llista es buida")
                else:
                        llista2.sort()
                        print "La llista ordenada queda aixi: ",llista2


        if op2=='q':
                i=len(agenda[actual])
                print "El numero d'elements que conte la llista es de:",i

                        
        if op2=='x':
                i=raw_input("Estas segur de que vols sortir? S/N ",)
                if i=='S':
                        op2='y'
                else:
                        print "Continuem amb l'execució"
                
         
                                 
                           
            

	
		






